package com.uzai.console.jsonvo.mini;

import lombok.Data;
import java.io.Serializable;

/**
 * 获取小程序信息
 * @author liuqi
 * @date 2023年11月18日 18:07
 */
@Data
public class AccountBasicInfo {
    //错误码
    private int errcode;
    //错误信息
    private String errmsg;
    //小程序的 appid
    private String appid;
    //帐号类型（1：订阅号，2：服务号，3：小程序）
    private Integer account_type;
    //主体类型
    private Integer principal_type;
    //主体名称
    private String principal_name;
    //实名验证状态（1-实名验证成功；2-实名验证中；3-实名验证失败）
    private Integer realname_status;
    //小程序名称
    private String nickname;
    //注册国家
    private String registered_country;
    //实名验证状态
    private WxVerifyInfo wx_verify_info;
    //功能介绍信息
    private SignatureInfo signature_info;
    //头像信息
    private HeadImageInfo head_image_info;
    //名称信息
    private NicknameInfo nickname_info;
    //非个人主体时返回的是企业或者政府或其他组织的代号
    private String credential;
    //认证类型；如果未完成微信认证则返回0（0-个人；1-企业；2-媒体；3-政府；4-其他组织）；
    private Integer customer_type;

    /**
     * 微信认证信息
     */
    @Data
    public static class WxVerifyInfo implements Serializable {

        private static final long serialVersionUID = 1600041187112765255L;

        /**
         * 是否资质认证，若是，拥有微信认证相关的权限
         */
        private Boolean qualification_verify;
        /**
         * 是否名称认证
         */
        private Boolean naming_verify;
        /**
         * 是否需要年审（qualification_verify == true 时才有该字段）
         */
        private Boolean annual_review;
        /**
         * 年审开始时间，时间戳（qualification_verify == true 时才有该字段）
         */
        private Integer annual_review_begin_time;
        /**
         * 年审截止时间，时间戳（qualification_verify == true 时才有该字段）
         */
        private Integer annual_review_end_time;
    }

    /**
     * 功能介绍信息
     */
    @Data
    public static class SignatureInfo implements Serializable {
        //功能介绍
        private String signature;
        //功能介绍已使用修改次数（本月）
        private Integer modify_used_count;
        //功能介绍修改次数总额度（本月）
        private Integer modify_quota;
    }

    /**
     * 头像信息
     */
    @Data
    public static class HeadImageInfo implements Serializable {
        //头像链接
        private String head_image_url;
        //功能介绍已使用修改次数（本月）
        private Integer modify_used_count;
        //功能介绍修改次数总额度（本月）
        private Integer modify_quota;
    }

    /**
     * 名称信息
     */
    @Data
    public static class NicknameInfo implements Serializable {
        //小程序名称
        private String nickname;
        //功能介绍已使用修改次数（本月）
        private Integer modify_used_count;
        //功能介绍修改次数总额度（本月）
        private Integer modify_quota;
    }
}


